AIC analyses

Average AIC by age group

Average AIC

AIC difference from best model

Run regressions between model parameters and age

## 
## Call:
## lm(formula = LL ~ age, data = model_params)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -146.117  -38.809    1.221   37.467  140.946 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -252.460     26.180  -9.643 1.58e-15 ***
## age            3.244      1.407   2.305   0.0234 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 63.92 on 90 degrees of freedom
## Multiple R-squared:  0.05576,    Adjusted R-squared:  0.04527 
## F-statistic: 5.315 on 1 and 90 DF,  p-value: 0.02344
## 
## Call:
## lm(formula = alphaPosChoice ~ age, data = model_params)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.2998 -0.1843 -0.1090  0.1042  0.8076 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.075584   0.115998   0.652    0.516
## age         0.009314   0.006235   1.494    0.139
## 
## Residual standard error: 0.2832 on 90 degrees of freedom
## Multiple R-squared:  0.0242, Adjusted R-squared:  0.01335 
## F-statistic: 2.232 on 1 and 90 DF,  p-value: 0.1387
## 
## Call:
## lm(formula = alphaNegChoice ~ age, data = model_params)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.12509 -0.11233 -0.09502 -0.03547  0.85745 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept)  0.150066   0.095837   1.566    0.121
## age         -0.002127   0.005151  -0.413    0.681
## 
## Residual standard error: 0.234 on 90 degrees of freedom
## Multiple R-squared:  0.001892,   Adjusted R-squared:  -0.009199 
## F-statistic: 0.1706 on 1 and 90 DF,  p-value: 0.6806
## 
## Call:
## lm(formula = alphaPosComp ~ age, data = model_params)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.15755 -0.13896 -0.11970 -0.00461  0.84894 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.113350   0.100912   1.123    0.264
## age         0.001771   0.005424   0.327    0.745
## 
## Residual standard error: 0.2464 on 90 degrees of freedom
## Multiple R-squared:  0.001183,   Adjusted R-squared:  -0.009914 
## F-statistic: 0.1066 on 1 and 90 DF,  p-value: 0.7448
## 
## Call:
## lm(formula = alphaNegComp ~ age, data = model_params)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.18332 -0.18145 -0.15366  0.05692  0.80513 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.816e-01  1.175e-01   1.545    0.126
## age         8.019e-05  6.318e-03   0.013    0.990
## 
## Residual standard error: 0.287 on 90 degrees of freedom
## Multiple R-squared:  1.79e-06,   Adjusted R-squared:  -0.01111 
## F-statistic: 0.0001611 on 1 and 90 DF,  p-value: 0.9899
## 
## Call:
## lm(formula = betaAgency ~ age, data = model_params)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.9275 -3.8227 -0.5232  2.4939 18.7135 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)   5.0872     2.2647   2.246   0.0271 *
## age           0.2358     0.1217   1.937   0.0558 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.53 on 90 degrees of freedom
## Multiple R-squared:  0.04003,    Adjusted R-squared:  0.02937 
## F-statistic: 3.753 on 1 and 90 DF,  p-value: 0.05584
## 
## Call:
## lm(formula = betaMachine ~ age, data = model_params)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.3482 -3.1200 -0.6171  2.0051 16.4548 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  5.79744    2.05294   2.824  0.00584 **
## age          0.09143    0.11035   0.829  0.40955   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.013 on 90 degrees of freedom
## Multiple R-squared:  0.00757,    Adjusted R-squared:  -0.003457 
## F-statistic: 0.6865 on 1 and 90 DF,  p-value: 0.4096
## 
## Call:
## lm(formula = agencyBonus ~ age, data = model_params)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.82471 -0.15345 -0.04041  0.04863  1.74151 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.132596   0.171398   0.774    0.441
## age         0.010238   0.009213   1.111    0.269
## 
## Residual standard error: 0.4185 on 90 degrees of freedom
## Multiple R-squared:  0.01354,    Adjusted R-squared:  0.002575 
## F-statistic: 1.235 on 1 and 90 DF,  p-value: 0.2694

Plot relations between model parameters and age

Parameter summary statistics

Mixed-effects beta analysis

## Mixed Model Anova Table (Type 3 tests, S-method)
## 
## Model: estimate ~ ageZ * betaType + (1 | subID)
## Data: betas
##          Effect       df        F p.value
## 1          ageZ 1, 90.00     2.73    .102
## 2      betaType 1, 90.00 10.76 **    .001
## 3 ageZ:betaType 1, 90.00     1.41    .238
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: estimate ~ ageZ * betaType + (1 | subID)
##    Data: data
## 
## REML criterion at convergence: 1109.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.3424 -0.4713 -0.1507  0.4003  3.2096 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  subID    (Intercept) 12.61    3.551   
##  Residual             15.24    3.904   
## Number of obs: 184, groups:  subID, 92
## 
## Fixed effects:
##                Estimate Std. Error      df t value Pr(>|t|)    
## (Intercept)      8.3862     0.4689 90.0000  17.883  < 2e-16 ***
## ageZ             0.7771     0.4702 90.0000   1.653  0.10191    
## betaType1        0.9439     0.2878 90.0000   3.280  0.00148 ** 
## ageZ:betaType1   0.3429     0.2886 90.0000   1.188  0.23790    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) ageZ  btTyp1
## ageZ        0.000              
## betaType1   0.000  0.000       
## ageZ:btTyp1 0.000  0.000 0.000
Predictor Estimates SE Statistic p
intercept 8.39 0.47 17.88 <0.001
age 0.78 0.47 1.65 0.100
decision stage 0.94 0.29 3.28 0.001
age x decision stage 0.34 0.29 1.19 0.236

Beta plot

Mixed-effects learning rate analysis

## Mixed Model Anova Table (Type 3 tests, S-method)
## 
## Model: estimate ~ ageZ * valence * agency + (1 | subID)
## Data: learning_rates
##                Effect        df        F p.value
## 1                ageZ  1, 90.00     0.52    .473
## 2             valence 1, 270.00   3.07 +    .081
## 3              agency 1, 270.00     0.25    .618
## 4        ageZ:valence 1, 270.00     1.36    .245
## 5         ageZ:agency 1, 270.00     0.22    .637
## 6      valence:agency 1, 270.00 10.03 **    .002
## 7 ageZ:valence:agency 1, 270.00     0.75    .388
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: estimate ~ ageZ * valence * agency + (1 | subID)
##    Data: data
## 
## REML criterion at convergence: 107.5
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -1.3019 -0.5803 -0.3735  0.0936  3.2313 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  subID    (Intercept) 0.003877 0.06226 
##  Residual             0.065636 0.25619 
## Number of obs: 368, groups:  subID, 92
## 
## Fixed effects:
##                         Estimate Std. Error         df t value Pr(>|t|)    
## (Intercept)             0.170801   0.014849  90.000000  11.502  < 2e-16 ***
## ageZ                    0.010716   0.014869  90.000000   0.721  0.47299    
## valence1               -0.023387   0.013355 269.999999  -1.751  0.08105 .  
## agency1                 0.006673   0.013355 269.999999   0.500  0.61771    
## ageZ:valence1          -0.015570   0.013373 269.999999  -1.164  0.24534    
## ageZ:agency1            0.006325   0.013373 269.999999   0.473  0.63660    
## valence1:agency1       -0.042297   0.013355 269.999999  -3.167  0.00172 ** 
## ageZ:valence1:agency1  -0.011560   0.013373 269.999999  -0.864  0.38812    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) ageZ  valnc1 agncy1 agZ:v1 agZ:g1 vln1:1
## ageZ        0.000                                          
## valence1    0.000  0.000                                   
## agency1     0.000  0.000 0.000                             
## ageZ:valnc1 0.000  0.000 0.000  0.000                      
## ageZ:agncy1 0.000  0.000 0.000  0.000  0.000               
## vlnc1:gncy1 0.000  0.000 0.000  0.000  0.000  0.000        
## agZ:vlnc1:1 0.000  0.000 0.000  0.000  0.000  0.000  0.000
## 
##  Paired t-test
## 
## data:  model_params$alphaPosChoice and model_params$alphaNegChoice
## t = 3.2464, df = 91, p-value = 0.001636
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  0.05098873 0.21174803
## sample estimates:
## mean difference 
##       0.1313684
## 
##  Paired t-test
## 
## data:  model_params$alphaPosComp and model_params$alphaNegComp
## t = -0.8713, df = 91, p-value = 0.3859
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  -0.12404217  0.04840164
## sample estimates:
## mean difference 
##     -0.03782026
Predictor Estimates SE Statistic p
intercept 0.17 0.01 11.50 <0.001
age 0.01 0.01 0.72 0.472
valence -0.02 0.01 -1.75 0.081
agency 0.01 0.01 0.50 0.618
age x valence -0.02 0.01 -1.16 0.245
age x agency 0.01 0.01 0.47 0.637
valence x agency -0.04 0.01 -3.17 0.002
age x valence x agency -0.01 0.01 -0.86 0.388

Learning rate plot

Relation between parameter estimates and ‘model-free’ regressions

## 
## Call:
## lm(formula = `(Intercept)` ~ agencyBonus, data = voc_REs_RL)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8973 -0.5048 -0.0711  0.4379  3.2340 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -0.7368     0.1199  -6.142 2.17e-08 ***
## agencyBonus   2.2749     0.2291   9.928 4.03e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9159 on 90 degrees of freedom
## Multiple R-squared:  0.5227, Adjusted R-squared:  0.5174 
## F-statistic: 98.57 on 1 and 90 DF,  p-value: 4.026e-16
## 
## Call:
## lm(formula = zVoC ~ betaAgency, data = voc_REs_RL)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.86135 -0.30842 -0.04316  0.23221  1.17101 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.833300   0.090307  -9.227 1.16e-14 ***
## betaAgency   0.086421   0.008306  10.405  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4447 on 90 degrees of freedom
## Multiple R-squared:  0.546,  Adjusted R-squared:  0.541 
## F-statistic: 108.3 on 1 and 90 DF,  p-value: < 2.2e-16
## 
## Call:
## lm(formula = zVoC ~ betaAgency + age, data = voc_REs_RL)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.85984 -0.32425 -0.02079  0.25295  1.14000 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.979619   0.187387  -5.228 1.12e-06 ***
## betaAgency   0.084907   0.008487  10.004 3.14e-16 ***
## age          0.008918   0.010004   0.891    0.375    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4452 on 89 degrees of freedom
## Multiple R-squared:  0.5501, Adjusted R-squared:  0.5399 
## F-statistic:  54.4 on 2 and 89 DF,  p-value: 3.676e-16
## 
## Call:
## lm(formula = zVoC ~ betaAgency + betaMachine, data = voc_REs_RL)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.92713 -0.32224 -0.06426  0.27199  1.17530 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.878039   0.097696  -8.987 3.99e-14 ***
## betaAgency   0.081312   0.009342   8.704 1.54e-13 ***
## betaMachine  0.012416   0.010478   1.185    0.239    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4437 on 89 degrees of freedom
## Multiple R-squared:  0.5531, Adjusted R-squared:  0.543 
## F-statistic: 55.07 on 2 and 89 DF,  p-value: 2.721e-16

Questionnaire relations

DOC

## 
## Call:
## lm(formula = DOC ~ zAge, data = DOC)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -32.234  -6.388  -0.270   7.449  30.317 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   95.527      1.255   76.11   <2e-16 ***
## zAge           2.446      1.274    1.92    0.058 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.97 on 89 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.03978,    Adjusted R-squared:  0.02899 
## F-statistic: 3.687 on 1 and 89 DF,  p-value: 0.05804
## 
## Call:
## lm(formula = DOC ~ zBetaAgency * zAgencyBonus * zAge, data = DOC)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -32.177  -6.694   0.498   6.836  28.152 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    96.3552     1.4448  66.689   <2e-16 ***
## zBetaAgency                    -0.6198     1.5563  -0.398    0.691    
## zAgencyBonus                    0.7234     3.8298   0.189    0.851    
## zAge                            3.1628     1.4235   2.222    0.029 *  
## zBetaAgency:zAgencyBonus        1.4501     2.9050   0.499    0.619    
## zBetaAgency:zAge               -1.4899     1.4688  -1.014    0.313    
## zAgencyBonus:zAge               1.8497     3.6647   0.505    0.615    
## zBetaAgency:zAgencyBonus:zAge   1.7630     2.6769   0.659    0.512    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.15 on 83 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.07712,    Adjusted R-squared:  -0.0007151 
## F-statistic: 0.9908 on 7 and 83 DF,  p-value: 0.4437

LOC

## 
## Call:
## lm(formula = LOC ~ zAge, data = LOC)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.4335 -3.3923 -0.4242  3.4805 10.1914 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  12.6288     0.4372  28.886   <2e-16 ***
## zAge          0.2453     0.4392   0.559    0.578    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.17 on 89 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.003494,   Adjusted R-squared:  -0.007703 
## F-statistic: 0.3121 on 1 and 89 DF,  p-value: 0.5778
## 
## Call:
## lm(formula = LOC ~ zBetaAgency * zAgencyBonus * zAge, data = LOC)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.7161 -2.9065 -0.3207  2.9217  9.7008 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    12.6246     0.4987  25.315   <2e-16 ***
## zBetaAgency                    -0.9811     0.5369  -1.827   0.0712 .  
## zAgencyBonus                   -1.0330     1.3031  -0.793   0.4302    
## zAge                            0.6066     0.4829   1.256   0.2126    
## zBetaAgency:zAgencyBonus       -0.2208     1.0007  -0.221   0.8259    
## zBetaAgency:zAge                0.3645     0.5006   0.728   0.4686    
## zAgencyBonus:zAge               0.6135     1.2310   0.498   0.6195    
## zBetaAgency:zAgencyBonus:zAge   0.6690     0.9099   0.735   0.4643    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.15 on 83 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.07987,    Adjusted R-squared:  0.002267 
## F-statistic: 1.029 on 7 and 83 DF,  p-value: 0.4171

BDI

## 
## Call:
## lm(formula = zBDI ~ zAge, data = BDI)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.94728 -0.78671 -0.01517  0.72806  2.78555 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.122e-16  1.042e-01   0.000    1.000
## zAge        3.587e-02  1.048e-01   0.342    0.733
## 
## Residual standard error: 0.9993 on 90 degrees of freedom
## Multiple R-squared:  0.001301,   Adjusted R-squared:  -0.009796 
## F-statistic: 0.1172 on 1 and 90 DF,  p-value: 0.7329
## 
## Call:
## lm(formula = zBDI ~ zBetaAgency * zAgencyBonus * zAge, data = BDI)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8539 -0.6755 -0.0233  0.6917  2.5970 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)
## (Intercept)                    0.002931   0.120219   0.024    0.981
## zBetaAgency                    0.013087   0.129916   0.101    0.920
## zAgencyBonus                   0.074662   0.314943   0.237    0.813
## zAge                          -0.005686   0.116933  -0.049    0.961
## zBetaAgency:zAgencyBonus      -0.005344   0.241141  -0.022    0.982
## zBetaAgency:zAge              -0.160374   0.121634  -1.318    0.191
## zAgencyBonus:zAge             -0.157728   0.299366  -0.527    0.600
## zBetaAgency:zAgencyBonus:zAge -0.166452   0.220803  -0.754    0.453
## 
## Residual standard error: 1.016 on 84 degrees of freedom
## Multiple R-squared:  0.03632,    Adjusted R-squared:  -0.04399 
## F-statistic: 0.4523 on 7 and 84 DF,  p-value: 0.866

STAI

## 
## Call:
## lm(formula = zSTAI_t ~ zAge, data = STAI)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.82245 -0.96538  0.01261  0.83118  2.16747 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.001085   0.104658   0.010    0.992
## zAge        0.060134   0.106243   0.566    0.573
## 
## Residual standard error: 0.9982 on 89 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.003587,   Adjusted R-squared:  -0.007609 
## F-statistic: 0.3204 on 1 and 89 DF,  p-value: 0.5728
## 
## Call:
## lm(formula = zSTAI_t ~ zBetaAgency * zAgencyBonus * zAge, data = STAI)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8159 -0.9588  0.0664  0.8286  1.7670 
## 
## Coefficients:
##                                Estimate Std. Error t value Pr(>|t|)
## (Intercept)                    0.010483   0.122103   0.086    0.932
## zBetaAgency                   -0.057149   0.131628  -0.434    0.665
## zAgencyBonus                  -0.068192   0.316929  -0.215    0.830
## zAge                           0.089023   0.120037   0.742    0.460
## zBetaAgency:zAgencyBonus       0.017827   0.242557   0.073    0.942
## zBetaAgency:zAge              -0.054557   0.124118  -0.440    0.661
## zAgencyBonus:zAge              0.085548   0.301177   0.284    0.777
## zBetaAgency:zAgencyBonus:zAge  0.009472   0.222193   0.043    0.966
## 
## Residual standard error: 1.022 on 83 degrees of freedom
##   (1 observation deleted due to missingness)
## Multiple R-squared:  0.02576,    Adjusted R-squared:  -0.05641 
## F-statistic: 0.3135 on 7 and 83 DF,  p-value: 0.946
## 
## Call:
## lm(formula = zSTAI_s ~ zAge, data = STAI)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9203 -0.6732 -0.1498  0.4769  3.1426 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.937e-16  1.033e-01   0.000    1.000
## zAge        1.368e-01  1.038e-01   1.318    0.191
## 
## Residual standard error: 0.9905 on 90 degrees of freedom
## Multiple R-squared:  0.01894,    Adjusted R-squared:  0.008035 
## F-statistic: 1.737 on 1 and 90 DF,  p-value: 0.1909
## 
## Call:
## lm(formula = zSTAI_s ~ zBetaAgency * zAgencyBonus * zAge, data = STAI)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5559 -0.6835 -0.1344  0.6615  2.8213 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)  
## (Intercept)                    0.08413    0.11552   0.728   0.4685  
## zBetaAgency                   -0.04869    0.12483  -0.390   0.6975  
## zAgencyBonus                   0.26794    0.30262   0.885   0.3785  
## zAge                           0.20466    0.11236   1.822   0.0721 .
## zBetaAgency:zAgencyBonus       0.39754    0.23171   1.716   0.0899 .
## zBetaAgency:zAge              -0.09125    0.11688  -0.781   0.4372  
## zAgencyBonus:zAge             -0.17596    0.28766  -0.612   0.5424  
## zBetaAgency:zAgencyBonus:zAge -0.12508    0.21217  -0.590   0.5571  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9764 on 84 degrees of freedom
## Multiple R-squared:  0.1102, Adjusted R-squared:  0.03608 
## F-statistic: 1.487 on 7 and 84 DF,  p-value: 0.1831
LS0tCnRpdGxlOiAiVm9DIEFuYWx5c2VzIFBhcnQgMzogQW5hbHl6ZSBSZWluZm9yY2VtZW50LUxlYXJuaW5nIFJlc3VsdHMiCmRhdGU6IDMvMjcvMjQKb3V0cHV0OgogICAgaHRtbF9kb2N1bWVudDoKICAgICAgICBkZl9wcmludDogJ3BhZ2VkJwogICAgICAgIHRvYzogdHJ1ZQogICAgICAgIHRvY19mbG9hdDoKICAgICAgICAgICAgY29sbGFwc2VkOiBmYWxzZQogICAgICAgICAgICBzbW9vdGhfc2Nyb2xsOiB0cnVlCiAgICAgICAgbnVtYmVyX3NlY3Rpb25zOiBmYWxzZQogICAgICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgICAgICBzZWxmX2NvbnRhaW5lZDogdHJ1ZQotLS0KCmBgYHtyIGNodW5rIHNldHRpbmdzLCBpbmNsdWRlID0gRkFMU0V9CiMgc2V0IGNodW5rIHNldHRpbmdzCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgY2FjaGUgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgd2FybmluZyA9IEZBTFNFKQprbml0cjo6b3B0c19jaHVuayRzZXQoZHBpPTYwMCkKa25pdHI6Om9wdHNfa25pdCRzZXQocm9vdC5kaXIgPSBycHJvanJvb3Q6OmZpbmRfcnN0dWRpb19yb290X2ZpbGUoKSkKYGBgCgpgYGB7ciBsb2FkIHBhY2thZ2VzLCBpbmNsdWRlID0gRn0KCiMgbGlzdCBhbGwgcGFja2FnZXMgcmVxdWlyZWQgZm9yIHRoZSBhbmFseXNpcwpsaXN0Lm9mLnBhY2thZ2VzIDwtIGMoInRpZHl2ZXJzZSIsICJsYXRleDJleHAiLCAiYWZleCIsICJzalBsb3QiKQoKIyBjaGVjayBpZiBhbGwgcGFja2FnZXMgYXJlIGluc3RhbGxlZCwgaWYgbm90LCBpbnN0YWxsIHRoZW0uCm5ldy5wYWNrYWdlcyA8LSBsaXN0Lm9mLnBhY2thZ2VzWyEobGlzdC5vZi5wYWNrYWdlcyAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygpWywiUGFja2FnZSJdKV0KaWYobGVuZ3RoKG5ldy5wYWNrYWdlcykpIGluc3RhbGwucGFja2FnZXMobmV3LnBhY2thZ2VzKQoKIyBsb2FkIGFsbCBwYWNrYWdlcyAKbGFwcGx5KGxpc3Qub2YucGFja2FnZXMsIGxpYnJhcnksIGNoYXJhY3Rlci5vbmx5ID0gVFJVRSkKCiMgYWRkIHRoZW1lIGZvciBwbG90dGluZwp2b2NfdGhlbWUgPC0gZnVuY3Rpb24gKCkgewogIHRoZW1lKAogICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9yZWN0KGZpbGwgPSAidHJhbnNwYXJlbnQiLCBjb2xvcj0iZ3JheTc1IiksCiAgICBwYW5lbC5iYWNrZ3JvdW5kICA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICBsZWdlbmQuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsPSJ0cmFuc3BhcmVudCIsIGNvbG91cj1OQSksCiAgICBsZWdlbmQua2V5ID0gZWxlbWVudF9yZWN0KGZpbGw9InRyYW5zcGFyZW50IiwgY29sb3VyPU5BKSwKICAgIGxpbmUgPSBlbGVtZW50X2JsYW5rKCksCiAgICBheGlzLnRpY2tzID0gZWxlbWVudF9saW5lKGNvbG9yPSJncmF5NzUiKSwKICAgIHRleHQ9ZWxlbWVudF90ZXh0KGZhbWlseT0iQXZlbmlyIiksCiAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKSwKICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE1KSwKICAgIHRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNSksCiAgICBzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLAogICAgc3RyaXAudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplPTEyKQogICkKfQoKY29sb3I4ID0gIiM4MGRiYjIiCmNvbG9yMSA9ICIjMDBiNGQ4Igpjb2xvcjIgPSAiIzAwNzdiNiIKY29sb3IzID0gIiMwMzA0NWUiCmNvbG9yNCA9ICIjODQzNDdDIgpjb2xvcjUgPSAiI0I0MDQyNCIKY29sb3I2ID0gIiNFQjZEMUUiCmNvbG9yNyA9ICIjZjViNjhmIgoKc2NhbGVfdGhpcyA8LSBmdW5jdGlvbih4KXsKICAoeCAtIG1lYW4oeCwgbmEucm09VFJVRSkpIC8gc2QoeCwgbmEucm09VFJVRSkKfQoKYGBgCgpgYGB7ciwgbG9hZCBkYXRhfQojbG9hZCBkYXRhCmFpY3MgPSByZWFkX2NzdigiUkxfbW9kZWxpbmcvb3V0cHV0L2FpY3NfYWxsXzE2X21vZGVsc18xMDBpdGVyLmNzdiIpCmJpY3MgPSByZWFkX2NzdigiUkxfbW9kZWxpbmcvb3V0cHV0L2JpY3NfYWxsXzE2X21vZGVsc18xMDBpdGVyLmNzdiIpCmBgYAoKYGBge3IgcGl2b3QgZGF0YSBsb25nZXJ9CmFpY3MxIDwtIHBpdm90X2xvbmdlcihhaWNzLCAKICAgICAgICAgICAgICAgIGNvbHMgPSBvbmVBbHBoYV9vbmVCZXRhOmZvdXJBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzLAogICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAibW9kZWwiLAogICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gIkFJQyIpCgpiaWNzMSA8LSBwaXZvdF9sb25nZXIoYmljcywgCiAgICAgICAgICAgICAgICBjb2xzID0gb25lQWxwaGFfb25lQmV0YTpmb3VyQWxwaGFfdHdvQmV0YV9hZ2VuY3lCb251cywKICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gIm1vZGVsIiwKICAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJCSUMiKQpgYGAKCgojICBBSUMgYW5hbHlzZXMKIyMgQXZlcmFnZSBBSUMgYnkgYWdlIGdyb3VwCmBgYHtyIHBsb3QgQUlDIGJ5IGFnZSBncm91cCwgZmlnLndpZHRoID0gOCwgZmlnLmhlaWdodCA9IDUsIHVuaXRzID0gImluIn0KCiMgQWRkIGlkIGFuZCBvdGhlciBkZW1vZ3JhcGhpYyBpbmZvCnN1Yl9pbmZvIDwtIHJlYWRfY3N2KCdkYXRhL3ZvY19zdWJfaW5mby5jc3YnKSAlPiUKICAgIG11dGF0ZShhZ2VfZ3JvdXAgPSBjYXNlX3doZW4oYWdlIDwgMTMgfiAiQ2hpbGRyZW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2UgPiAxMi45OSAmIGFnZSA8IDE4IH4gIkFkb2xlc2NlbnRzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlID4gMTcuOTkgfiAiQWR1bHRzIikpCgpzdWJfaW5mbyRhZ2VfZ3JvdXAgPC0gZmFjdG9yKHN1Yl9pbmZvJGFnZV9ncm91cCwgbGV2ZWxzID0gYygiQ2hpbGRyZW4iLCAiQWRvbGVzY2VudHMiLCAiQWR1bHRzIikpCgptb2RlbF9yZXN1bHRzIDwtIGZ1bGxfam9pbihzdWJfaW5mbywgYWljczEsIGJ5ID0gYygic3ViSUQiKSkKCm1vZGVsX3Jlc3VsdHMkbW9kZWwgPC0gZmFjdG9yKG1vZGVsX3Jlc3VsdHMkbW9kZWwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJvbmVBbHBoYV9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25lQWxwaGFfdHdvQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ckFscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfdHdvQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uZUFscGhhX29uZUJldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbmVBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX3R3b0JldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX29uZUJldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX3R3b0JldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzIikpCm1vZGVsX3Jlc3VsdHMgPC0gbW9kZWxfcmVzdWx0cyAlPiUKICAgIG11dGF0ZShhZ2VuY3lCb251cyA9IGNhc2Vfd2hlbihzdHJfZGV0ZWN0KG1vZGVsLCAiYWdlbmN5IikgfiAiV2l0aCBBZ2VuY3kgQm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0cl9kZXRlY3QobW9kZWwsICJhZ2VuY3kiKSB+ICJObyBBZ2VuY3kgQm9udXMiKSwKICAgICAgICAgICBzaG9ydE5hbWUgPSBzdHJfcmVtb3ZlKG1vZGVsLCAnX2FnZW5jeUJvbnVzJykpCgptb2RlbF9yZXN1bHRzJHNob3J0TmFtZSA8LSBmYWN0b3IobW9kZWxfcmVzdWx0cyRzaG9ydE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJvbmVBbHBoYV9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25lQWxwaGFfdHdvQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFWYWxlbmNlZF90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ckFscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfdHdvQmV0YSIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI3N1bW1hcml6ZQptb2RlbF9zdW1tYXJ5IDwtIG1vZGVsX3Jlc3VsdHMgJT4lCiAgICBncm91cF9ieShhZ2VfZ3JvdXAsIHNob3J0TmFtZSwgYWdlbmN5Qm9udXMpICU+JQogICAgc3VtbWFyaXplKG1lYW5BSUMgPSBtZWFuKEFJQykpCgojICMgUGxvdCB0aGUgcmVzdWx0cyBieSBhZ2UgZ3JvdXAgCkFJQ19hZ2VfcGxvdCA8LSBnZ3Bsb3QobW9kZWxfc3VtbWFyeSwgYWVzKHggPSBhZ2VfZ3JvdXAsIHkgPSBtZWFuQUlDLCBmaWxsID0gc2hvcnROYW1lKSkrCiAgICBmYWNldF93cmFwKH5hZ2VuY3lCb251cykgKwogICAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIHBvc2l0aW9uID0gImRvZGdlIiwgY29sb3IgPSAiYmxhY2siKSArCiAgICBzY2FsZV9maWxsX21hbnVhbChuYW1lID0gIk1vZGVsIiwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IGMoY29sb3I4LCBjb2xvcjEsIGNvbG9yMiwgY29sb3IzLCBjb2xvcjQsIGNvbG9yNSwgY29sb3I2LCBjb2xvcjcsIGNvbG9yMSksCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSAgYyhUZVgoJyRvbmVcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckb25lXFxhbHBoYVxcX3R3b1xcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29DaG9pY2VcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckZm91clxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX3R3b1xcYmV0YScpKSkgKyAKICAgIGNvb3JkX2NhcnRlc2lhbih5bGltID0gYygzNTAsIDYwMCkpICsKICAgIHlsYWIoIk1lYW4gQUlDIikgKwogICAgeGxhYigiIikgKwogICAgdm9jX3RoZW1lKCkgKwogICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxKSkKQUlDX2FnZV9wbG90CmBgYAoKIyMgQXZlcmFnZSBBSUMgCmBgYHtyIGFpYyBvdmVyYWxsIHBsb3QsIGZpZy53aWR0aCA9IDYsIGZpZy5oZWlnaHQgPSA0LCB1bml0cyA9ICJpbiJ9Cm1vZGVsX3N1bW1hcnlfb3ZlcmFsbCA8LSBtb2RlbF9yZXN1bHRzICU+JQogICAgZ3JvdXBfYnkobW9kZWwsIHNob3J0TmFtZSwgYWdlbmN5Qm9udXMpICU+JQogICAgc3VtbWFyaXplKG1lYW5BSUMgPSBtZWFuKEFJQykpCgpBSUNfcGxvdCA8LSBnZ3Bsb3QobW9kZWxfc3VtbWFyeV9vdmVyYWxsLCBhZXMoeCA9IHNob3J0TmFtZSwgeSA9IG1lYW5BSUMsIGZpbGwgPSBzaG9ydE5hbWUpKSArCiAgICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IiwgcG9zaXRpb24gPSAiZG9kZ2UiLCBjb2xvciA9ICJibGFjayIpICsKICAgIGZhY2V0X3dyYXAofmFnZW5jeUJvbnVzKSArCiAgICBjb29yZF9jYXJ0ZXNpYW4oeWxpbSA9IGMoMzUwLCA2MDApKSArIAogICAgeWxhYigiTWVhbiBBSUMiKSArCiAgICB4bGFiKCJNb2RlbCIpICsKICAgIHNjYWxlX2ZpbGxfbWFudWFsKG5hbWUgPSAiTW9kZWwiLAogICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gYyhjb2xvcjgsIGNvbG9yMSwgY29sb3IyLCBjb2xvcjMsIGNvbG9yNCwgY29sb3I1LCBjb2xvcjYsIGNvbG9yNywgY29sb3IxKSwKICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9ICBjKFRlWCgnJG9uZVxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRvbmVcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvQ2hvaWNlXFxhbHBoYVxcX29uZVxcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF90d29cXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29WYWxlbmNlZFxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29WYWxlbmNlZFxcYWxwaGFcXF90d29cXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX29uZVxcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJGZvdXJcXGFscGhhXFxfdHdvXFxiZXRhJykpKSArIAogICAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHMgPSAgYyhUZVgoJyRvbmVcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckb25lXFxhbHBoYVxcX3R3b1xcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29DaG9pY2VcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckZm91clxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX3R3b1xcYmV0YScpKSkgKyAKICAgIHZvY190aGVtZSgpICsKICAgICAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDc1LCBoanVzdCA9IDEpLAogICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKQUlDX3Bsb3QKCmBgYAoKIyMgQUlDIGRpZmZlcmVuY2UgZnJvbSBiZXN0IG1vZGVsCmBgYHtyIGFpYyBvdmVyYWxsIGRpZmZlcmVuY2UgcGxvdCwgZmlnLndpZHRoID0gNCwgZmlnLmhlaWdodCA9IDUsIHVuaXRzID0gImluIn0KI2dldCBtaW5pbXVtIEFJQwptaW5BSUMgPSBtaW4obW9kZWxfc3VtbWFyeV9vdmVyYWxsJG1lYW5BSUMpCgojc3VidHJhY3QgZnJvbSBtZWFuIEFJQ3MKbW9kZWxfZGlmZmVyZW5jZV9zdW1tYXJ5IDwtIG1vZGVsX3N1bW1hcnlfb3ZlcmFsbCAlPiUKICAgIG11dGF0ZShBSUNfZGlmZmVyZW5jZSA9IG1lYW5BSUMgLSBtaW5BSUNbMV0pICU+JQogICAgZmlsdGVyKGFnZW5jeUJvbnVzID09ICJXaXRoIEFnZW5jeSBCb251cyIpCgojcGxvdApBSUNfZGlmZmVyZW5jZV9wbG90IDwtIGdncGxvdChtb2RlbF9kaWZmZXJlbmNlX3N1bW1hcnksIGFlcyh4ID0gc2hvcnROYW1lLCB5ID0gQUlDX2RpZmZlcmVuY2UsIGZpbGwgPSBzaG9ydE5hbWUpKSArCiAgICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IiwgcG9zaXRpb24gPSAiZG9kZ2UiLCBjb2xvciA9ICJibGFjayIpICsKICAgIGZhY2V0X3dyYXAofmFnZW5jeUJvbnVzKSArCiAgICB5bGFiKCJBSUMgRGlmZmVyZW5jZSIpICsKICAgIHhsYWIoIiIpICsKICAgIHNjYWxlX2ZpbGxfbWFudWFsKG5hbWUgPSAiTW9kZWwiLAogICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gYyhjb2xvcjgsIGNvbG9yMSwgY29sb3IyLCBjb2xvcjMsIGNvbG9yNCwgY29sb3I1LCBjb2xvcjYsIGNvbG9yNywgY29sb3IxKSwKICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9ICBjKFRlWCgnJG9uZVxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRvbmVcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvQ2hvaWNlXFxhbHBoYVxcX29uZVxcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF90d29cXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29WYWxlbmNlZFxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29WYWxlbmNlZFxcYWxwaGFcXF90d29cXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX29uZVxcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJGZvdXJcXGFscGhhXFxfdHdvXFxiZXRhJykpKSArIAogICAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHMgPSAgYyhUZVgoJyRvbmVcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckb25lXFxhbHBoYVxcX3R3b1xcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29DaG9pY2VcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfb25lXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvVmFsZW5jZWRcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckZm91clxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX3R3b1xcYmV0YScpKSkgKyAKICAgIHZvY190aGVtZSgpICsKICAgICAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDYwLCBoanVzdCA9IDEpLAogICAgICAgICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikKQUlDX2RpZmZlcmVuY2VfcGxvdAoKYGBgCgoKIyAgQWdlLXJlbGF0ZWQgY2hhbmdlIGluIHBhcmFtZXRlciBlc3RpbWF0ZXMgZnJvbSBtb2RlbHMKYGBge3IgcGFyYW1ldGVyIGVzdGltYXRlc30KCiMgbG9hZCBhbGwgcGFyYW1ldGVycyBmcm9tIGVhY2ggbW9kZWwKbW9kZWxfcGFyYW1zIDwtIHJlYWRfY3N2KCJSTF9tb2RlbGluZy9vdXRwdXQvbW9kZWxfZml0c19yZWFsX2RhdGEvZm91ckFscGhhX3R3b0JldGFfYWdlbmN5Qm9udXMuY3N2IiwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9uYW1lcyA9IGMoIm5lZ0xMIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvZ1Bvc3QiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUlDIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJJQyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHBoYVBvc0Nob2ljZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHBoYU5lZ0Nob2ljZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHBoYVBvc0NvbXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxwaGFOZWdDb21wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJldGFBZ2VuY3kiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmV0YU1hY2hpbmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWdlbmN5Qm9udXMiKSkKCiNhZGQgc3ViIElEIGFuZCBpbmZvcm1hdGlvbgpzdWJJRCA8LSByZWFkX2NzdignUkxfbW9kZWxpbmcvb3V0cHV0L3N1YklEcy5jc3YnKQptb2RlbF9wYXJhbXMgPC0gYmluZF9jb2xzKHN1YklELCBtb2RlbF9wYXJhbXMpCm1vZGVsX3BhcmFtcyA8LSBmdWxsX2pvaW4oc3ViX2luZm8sIG1vZGVsX3BhcmFtcywgYnkgPSBjKCJzdWJJRCIpKQpgYGAKCgojIFJ1biByZWdyZXNzaW9ucyBiZXR3ZWVuIG1vZGVsIHBhcmFtZXRlcnMgYW5kIGFnZQpgYGB7ciBwYXJhbSBhZ2UgcmVncmVzc2lvbnN9Cgptb2RlbF9wYXJhbXMkTEwgPC0gbW9kZWxfcGFyYW1zJG5lZ0xMICogLTEKCiMgTG9nIGxpa2VsaWhvb2QKc3VtbWFyeShsbShMTCB+IGFnZSwgZGF0YSA9IG1vZGVsX3BhcmFtcykpCiMgc2lnbmlmaWNhbnQKCiMgQWxwaGEgUG9zIENob2ljZQpzdW1tYXJ5KGxtKGFscGhhUG9zQ2hvaWNlIH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKI25vdCBzaWduaWZpY2FudAoKIyBBbHBoYSBOZWcgQ2hvaWNlCnN1bW1hcnkobG0oYWxwaGFOZWdDaG9pY2UgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojbm90IHNpZ25pZmljYW50CgojIEFscGhhIFBvcyBDb21wCnN1bW1hcnkobG0oYWxwaGFQb3NDb21wIH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKI25vdCBzaWduaWZpY2FudAoKIyBBbHBoYSBOZWcgQ29tcApzdW1tYXJ5KGxtKGFscGhhTmVnQ29tcCB+IGFnZSwgZGF0YSA9IG1vZGVsX3BhcmFtcykpCiNub3Qgc2lnbmlmaWNhbnQKCiMgQmV0YSBBZ2VuY3kKc3VtbWFyeShsbShiZXRhQWdlbmN5IH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKI3NpZ25pZmljYW50CgojIEJldGEgQmFuZGl0CnN1bW1hcnkobG0oYmV0YU1hY2hpbmUgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojbm90IHNpZ25pZmljYW50CgojIGFnZW5jeSBib251cwpzdW1tYXJ5KGxtKGFnZW5jeUJvbnVzIH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKI25vdCBzaWduaWZpY2FudApgYGAKCiMgUGxvdCByZWxhdGlvbnMgYmV0d2VlbiBtb2RlbCBwYXJhbWV0ZXJzIGFuZCBhZ2UKYGBge3IgYWdlIHBhcmFtZXRlciBwbG90LCBmaWcud2lkdGggPSA3LCBmaWcuaGVpZ2h0ID0gNCwgdW5pdHMgPSAiaW4ifQoKcGFyYW1zX2xvbmcgPC0gbW9kZWxfcGFyYW1zICU+JQogICAgcGl2b3RfbG9uZ2VyKG5hbWVzX3RvID0gInBhcmFtIiwKICAgICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAiZXN0aW1hdGUiLAogICAgICAgICAgICAgICAgIGNvbHMgPSBjKGFscGhhUG9zQ2hvaWNlOmFnZW5jeUJvbnVzKSkgCgpwYXJhbXNfbG9uZyRwYXJhbSA8LSBmYWN0b3IocGFyYW1zX2xvbmckcGFyYW0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiYWxwaGFQb3NDaG9pY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxwaGFOZWdDaG9pY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxwaGFQb3NDb21wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhTmVnQ29tcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZXRhQWdlbmN5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJldGFNYWNoaW5lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFnZW5jeUJvbnVzIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKFRlWCgiJFxcYWxwaGFfe2Nob2ljZV8rfSQiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgiJFxcYWxwaGFfe2Nob2ljZV8tfSQiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgiJFxcYWxwaGFfe2NvbXBfK30kIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoIiRcXGFscGhhX3tjb21wXy19JCIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCIkXFxiZXRhX3thZ2VuY3l9JCIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCIkXFxiZXRhX3ttYWNoaW5lfSQiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFnZW5jeX5Cb251cyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQoKcGFyYW1zX3Bsb3QgPC0gZ2dwbG90KHBhcmFtc19sb25nLCBhZXMoeCA9IGFnZSwgeSA9IGVzdGltYXRlLCBjb2xvciA9IHBhcmFtKSkgKwogICAgZmFjZXRfd3JhcCh+cGFyYW0sIHNjYWxlID0gImZyZWUiLCBsYWJlbGxlciA9IGxhYmVsX3BhcnNlZCwgbnJvdyA9IDIpICsKICAgIGdlb21fcG9pbnQoKSArCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBhZXMoZmlsbCA9IHBhcmFtKSkgKwogICAgeWxhYigiUGFyYW1ldGVyIEVzdGltYXRlIikgKwogICAgeGxhYigiQWdlIikgKwogICAgdm9jX3RoZW1lKCkgKwogICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQpwYXJhbXNfcGxvdApgYGAKCiMgUGFyYW1ldGVyIHN1bW1hcnkgc3RhdGlzdGljcwpgYGB7ciBwYXJhbWV0ZXIgc3VtbWFyeSBzdGF0c30KCnBhcmFtX3N1bW1hcnkgPC0gcGFyYW1zX2xvbmcgJT4lCiAgICBncm91cF9ieShwYXJhbSkgJT4lCiAgICBzdW1tYXJpemUobWVhbkVzdGltYXRlID0gbWVhbihlc3RpbWF0ZSksCiAgICAgICAgICAgIHNlRXN0aW1hdGUgPSBzZChlc3RpbWF0ZSkvc3FydChuKCkpKQpwYXJhbV9zdW1tYXJ5CgpgYGAKCiMgTWl4ZWQtZWZmZWN0cyBiZXRhIGFuYWx5c2lzCmBgYHtyIGJldGEgcmVncmVzc2lvbn0KYmV0YXMgPC0gbW9kZWxfcGFyYW1zICU+JQogICAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBjKGJldGFBZ2VuY3ksIGJldGFNYWNoaW5lKSwKICAgICAgICAgICAgICAgICBuYW1lc190byA9ICJiZXRhVHlwZSIsCiAgICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gImVzdGltYXRlIikgJT4lCiAgICBzZWxlY3Qoc3ViSUQsIGFnZSwgYWdlX2dyb3VwLCBiZXRhVHlwZSwgZXN0aW1hdGUpICU+JQogICAgdW5pcXVlKCkgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKYmV0YXMkYWdlWiA8LSBzY2FsZV90aGlzKGJldGFzJGFnZSkKCmJldGFfbW9kZWwgPC0gbWl4ZWQoZXN0aW1hdGUgfiBhZ2VaICogYmV0YVR5cGUgKyAoMXxzdWJJRCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGJldGFzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJTIikKYmV0YV9tb2RlbApzdW1tYXJ5KGJldGFfbW9kZWwpCmBgYAoKYGBge3IgYmV0YSBwcmludCBtb2RlbCBzdGF0c30KCmJldGFfbW9kZWwubG1lciA8LSBtaXhlZChlc3RpbWF0ZSB+IGFnZVogKiBiZXRhVHlwZSArICgxfHN1YklEKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYmV0YXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gIlMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA9ICJtZXJNb2QiKQoKdGFiX21vZGVsKGJldGFfbW9kZWwubG1lciwgCiAgICAgICAgICBwcmVkLmxhYmVscyA9IGMoImludGVyY2VwdCIsICJhZ2UiLCAiZGVjaXNpb24gc3RhZ2UiLCAiYWdlIHggZGVjaXNpb24gc3RhZ2UiKSwKICAgICAgICAgIHRyYW5zZm9ybSA9IE5VTEwsCiAgICAgICAgICBzaG93LmVzdCA9IFQsIAogICAgICAgICAgc2hvdy5zZSA9IFQsIAogICAgICAgICAgc2hvdy5zdGF0ID0gVCwKICAgICAgICAgIHNob3cuY2kgPSBGLAogICAgICAgICAgc2hvdy5yZS52YXIgPSBGLAogICAgICAgICAgc2hvdy5pY2MgPSBGLAogICAgICAgICAgc2hvdy5uZ3JvdXBzID0gRiwKICAgICAgICAgIHNob3cub2JzID0gRiwKICAgICAgICAgIHNob3cucjIgPSBGLAogICAgICAgICAgc3RyaW5nLnNlID0gIlNFIiwKICAgICAgICAgIGVtcGgucCA9IEYsCiAgICAgICAgICBzdHJpbmcucHJlZCA9ICJQcmVkaWN0b3IiLAogICAgICAgICAgdGl0bGUgPSAiIiwKICAgICAgICAgIGR2LmxhYmVscyA9ICIiKQpgYGAKCgojIyBCZXRhIHBsb3QKYGBge3IgYmV0YSBwbG90fQoKYmV0YV9tZWFucyA8LSBiZXRhcyAlPiUKICAgIGdyb3VwX2J5KGFnZV9ncm91cCwgYmV0YVR5cGUpICU+JQogICAgc3VtbWFyaXplKG1lYW5CZXRhID0gbWVhbihlc3RpbWF0ZSksCiAgICAgICAgICAgICAgc2VCZXRhID0gc2QoZXN0aW1hdGUpIC8gc3FydChuKCkpKQoKYmV0YV9wbG90IDwtIGdncGxvdChiZXRhX21lYW5zLCBhZXMoeCA9IGJldGFUeXBlLCB5ID0gbWVhbkJldGEsIGZpbGwgPSBhZ2VfZ3JvdXApKSArCiAgICBnZW9tX2Jhcihjb2xvciA9ICdibGFjaycsIHN0YXQgPSAiaWRlbnRpdHkiLCBwb3NpdGlvbiA9ICJkb2RnZSIpICsgCiAgICBnZW9tX2Vycm9yYmFyKGNvbG9yID0gImJsYWNrIiwgYWVzKHltaW4gPSBtZWFuQmV0YSAtIHNlQmV0YSwgeW1heCA9IG1lYW5CZXRhICsgc2VCZXRhKSwgd2lkdGggPSAuMSwKICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IC45KSkgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYyhjb2xvcjEsIGNvbG9yMiwgY29sb3IzKSwgbmFtZSA9ICJBZ2UgR3JvdXAiKSArCiAgICB5bGFiKCJNZWFuIEJldGEiKSArCiAgICB4bGFiKCJEZWNpc2lvbiBTdGFnZSIpICsKICAgIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gYygiQWdlbmN5IERlY2lzaW9uIiwgIk1hY2hpbmUgRGVjaXNpb24iKSkgKwogICAgdm9jX3RoZW1lKCkKYmV0YV9wbG90IAoKCmJldGFfcGxvdF9jb250aW51b3VzIDwtIGdncGxvdChiZXRhcywgYWVzKGNvbG9yID0gYmV0YVR5cGUsIHkgPSBlc3RpbWF0ZSwgeCA9IGFnZSkpICsKICAgIGdlb21fcG9pbnQoKSArCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBhZXMoZmlsbCA9IGJldGFUeXBlLCBjb2xvciA9IGJldGFUeXBlKSkgKwogICAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IGMoY29sb3IxLCBjb2xvcjIpLCBuYW1lID0gIkJldGEgUGFyYW1ldGVyIiwgbGFiZWxzID0gYygiQWdlbmN5IERlY2lzaW9uIiwgIk1hY2hpbmUgRGVjaXNpb24iKSkgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYyhjb2xvcjEsIGNvbG9yMiksIG5hbWUgPSAiQmV0YSBQYXJhbWV0ZXIiLCBsYWJlbHMgPSBjKCJBZ2VuY3kgRGVjaXNpb24iLCAiTWFjaGluZSBEZWNpc2lvbiIpKSArCiAgICB5bGFiKCJCZXRhIEVzdGltYXRlIikgKwogICAgeGxhYigiQWdlIikgKwogICAgdm9jX3RoZW1lKCkKYmV0YV9wbG90X2NvbnRpbnVvdXMKYGBgCgoKIyBNaXhlZC1lZmZlY3RzIGxlYXJuaW5nIHJhdGUgYW5hbHlzaXMKYGBge3IgbGVhcm5pbmcgcmF0ZSByZWdyZXNzaW9ufQpsZWFybmluZ19yYXRlcyA8LSBtb2RlbF9wYXJhbXMgJT4lCiAgICBwaXZvdF9sb25nZXIoY29scyA9IGMoYWxwaGFQb3NDaG9pY2U6YWxwaGFOZWdDb21wKSwKICAgICAgICAgICAgICAgICBuYW1lc190byA9ICJsZWFybmluZ1JhdGUiLAogICAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJlc3RpbWF0ZSIpICU+JQogICAgc2VsZWN0KHN1YklELCBhZ2UsIGFnZV9ncm91cCwgbGVhcm5pbmdSYXRlLCBlc3RpbWF0ZSkgJT4lCiAgICB1bmlxdWUoKSAlPiUKICAgIG11dGF0ZSh2YWxlbmNlID0gY2FzZV93aGVuKHN0cl9kZXRlY3QobGVhcm5pbmdSYXRlLCAiUG9zIikgfiAiUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyX2RldGVjdChsZWFybmluZ1JhdGUsICJOZWciKSB+ICJOZWdhdGl2ZSIpLAogICAgICAgICAgIGFnZW5jeSA9IGNhc2Vfd2hlbihzdHJfZGV0ZWN0KGxlYXJuaW5nUmF0ZSwgIkNob2ljZSIpIH4gIkNob2ljZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cl9kZXRlY3QobGVhcm5pbmdSYXRlLCAiQ29tcCIpIH4gIkNvbXAiKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApsZWFybmluZ19yYXRlcyRhZ2VaIDwtIHNjYWxlX3RoaXMobGVhcm5pbmdfcmF0ZXMkYWdlKQoKbGVhcm5pbmdfcmF0ZV9tb2RlbCA8LSBtaXhlZChlc3RpbWF0ZSB+IGFnZVogKiB2YWxlbmNlICogYWdlbmN5ICsgKDF8c3ViSUQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBsZWFybmluZ19yYXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAiUyIpCmxlYXJuaW5nX3JhdGVfbW9kZWwKc3VtbWFyeShsZWFybmluZ19yYXRlX21vZGVsKQojIHZhbGVuY2UgeCBhZ2VuY3kgaW50ZXJhY3Rpb24KIyBtYXJnaW5hbCB2YWxlbmNlIHggYWdlbmN5IHggYWdlIGludGVyYWN0aW9uCgojdCB0ZXN0IGJldHdlZW4gYWxwaGEgcG9zIGNob2ljZSBhbmQgYWxwaGEgbmVnIGNob2ljZQp0LnRlc3QobW9kZWxfcGFyYW1zJGFscGhhUG9zQ2hvaWNlLCBtb2RlbF9wYXJhbXMkYWxwaGFOZWdDaG9pY2UsIHBhaXJlZCA9IFQpCiNzaWduaWZpY2FudAoKI3QgdGVzdCBiZXR3ZWVuIGFscGhhIHBvcyBjb21wIGFuZCBhbHBoYSBuZWcgY29tcAp0LnRlc3QobW9kZWxfcGFyYW1zJGFscGhhUG9zQ29tcCwgbW9kZWxfcGFyYW1zJGFscGhhTmVnQ29tcCwgcGFpcmVkID0gVCkKI25vdCBzaWduaWZpY2FudAoKYGBgCgpgYGB7ciBsZWFybmluZyByYXRlIHByaW50IG1vZGVsIHN0YXRzfQoKbGVhcm5pbmdfcmF0ZV9tb2RlbC5sbWVyIDwtIG1peGVkKGVzdGltYXRlIH4gYWdlWiAqIHZhbGVuY2UgKiBhZ2VuY3kgKyAoMXxzdWJJRCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGxlYXJuaW5nX3JhdGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJTIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPSAibWVyTW9kIikKCnRhYl9tb2RlbChsZWFybmluZ19yYXRlX21vZGVsLmxtZXIsIAogICAgICAgICAgcHJlZC5sYWJlbHMgPSBjKCJpbnRlcmNlcHQiLCAiYWdlIiwgInZhbGVuY2UiLCAiYWdlbmN5IiwgImFnZSB4IHZhbGVuY2UiLCAiYWdlIHggYWdlbmN5IiwgInZhbGVuY2UgeCBhZ2VuY3kiLCAiYWdlIHggdmFsZW5jZSB4IGFnZW5jeSIpLAogICAgICAgICAgdHJhbnNmb3JtID0gTlVMTCwKICAgICAgICAgIHNob3cuZXN0ID0gVCwgCiAgICAgICAgICBzaG93LnNlID0gVCwgCiAgICAgICAgICBzaG93LnN0YXQgPSBULAogICAgICAgICAgc2hvdy5jaSA9IEYsCiAgICAgICAgICBzaG93LnJlLnZhciA9IEYsCiAgICAgICAgICBzaG93LmljYyA9IEYsCiAgICAgICAgICBzaG93Lm5ncm91cHMgPSBGLAogICAgICAgICAgc2hvdy5vYnMgPSBGLAogICAgICAgICAgc2hvdy5yMiA9IEYsCiAgICAgICAgICBzdHJpbmcuc2UgPSAiU0UiLAogICAgICAgICAgZW1waC5wID0gRiwKICAgICAgICAgIHN0cmluZy5wcmVkID0gIlByZWRpY3RvciIsCiAgICAgICAgICB0aXRsZSA9ICIiLAogICAgICAgICAgZHYubGFiZWxzID0gIiIpCmBgYAoKIyMgTGVhcm5pbmcgcmF0ZSBwbG90CmBgYHtyIGxlYXJuaW5nIHJhdGUgcGxvdH0KCmxlYXJuaW5nX3JhdGVfbWVhbnMgPC0gbGVhcm5pbmdfcmF0ZXMgJT4lCiAgICBncm91cF9ieShhZ2VuY3ksIHZhbGVuY2UpICU+JQogICAgc3VtbWFyaXplKG1lYW5MUiA9IG1lYW4oZXN0aW1hdGUpLAogICAgICAgICAgICAgIHNlTFIgPSBzZChlc3RpbWF0ZSkgLyBzcXJ0KG4oKSkpCgpsZWFybmluZ19yYXRlX3Bsb3QgPC0gZ2dwbG90KGxlYXJuaW5nX3JhdGVfbWVhbnMsIGFlcyh4ID0gYWdlbmN5LCB5ID0gbWVhbkxSLCBmaWxsID0gdmFsZW5jZSkpICsKICAgIGdlb21fYmFyKGNvbG9yID0gJ2JsYWNrJywgc3RhdCA9ICJpZGVudGl0eSIsIHBvc2l0aW9uID0gImRvZGdlIikgKyAKICAgIGdlb21fZXJyb3JiYXIoY29sb3IgPSAiYmxhY2siLCBhZXMoeW1pbiA9IG1lYW5MUiAtIHNlTFIsIHltYXggPSBtZWFuTFIgKyBzZUxSKSwgd2lkdGggPSAuMSwKICAgICAgICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IC45KSkgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYyhjb2xvcjEsIGNvbG9yMiksIG5hbWUgPSAiVmFsZW5jZSIpICsKICAgIHlsYWIoIk1lYW4gTGVhcm5pbmcgUmF0ZSIpICsKICAgIHhsYWIoIkFnZW5jeSIpICsKICAgIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gYygiUGFydGljaXBhbnQgQ2hvaWNlIiwgIkNvbXB1dGVyIENob2ljZSIpKSArCiAgICB2b2NfdGhlbWUoKQpsZWFybmluZ19yYXRlX3Bsb3QgCmBgYAoKCgojIFJlbGF0aW9uIGJldHdlZW4gcGFyYW1ldGVyIGVzdGltYXRlcyBhbmQgJ21vZGVsLWZyZWUnIHJlZ3Jlc3Npb25zCmBgYHtyIHJlbGF0aW9ucyBiZXR3ZWVuIHJhbmRvbSBlZmZlY3RzIGFuZCBtb2RlbCBwYXJhbWV0ZXJzIC0gZXh0cmFjdCBSRXN9CgojIFJlYWQgaW4gZGF0YQpiYW5kaXRUYXNrIDwtIHJlYWRfY3N2KCdkYXRhL3Byb2Nlc3NlZC9iYW5kaXRfdGFzay5jc3YnKSAKCiNjb21iaW5lIHdpdGggcGFydGljaXBhbnQgYWdlCmJhbmRpdFRhc2sgPC0gZnVsbF9qb2luKGJhbmRpdFRhc2ssIHN1Yl9pbmZvLCBieSA9IGMoInN1YklEIikpCgojc2NhbGUgdm9jCmJhbmRpdFRhc2skelZvQyA8LSBzY2FsZV90aGlzKGJhbmRpdFRhc2skdm9jKQpiYW5kaXRUYXNrJHpUcmlhbE9mQ29uZCA8LSBzY2FsZV90aGlzKGJhbmRpdFRhc2skdHJpYWxPZkNvbmQpCmJhbmRpdFRhc2skekFnZSA8LSBzY2FsZV90aGlzKGJhbmRpdFRhc2skYWdlKQoKIyBwcmVkaWN0IGFnZW5jeSBjaG9pY2UgZnJvbSB1dGlsaXR5IG9mIGNvbnRyb2wsIHRyaWFsLCBsaW5lYXIgYWdlCmFnZW5jeV9ieVZPQ1RyaWFsQWdlLm1peGVkID0gbWl4ZWQoYWdlbmN5IH4gelZvQyAqIHpUcmlhbE9mQ29uZCArICh6Vm9DICogelRyaWFsT2ZDb25kfHN1YklEKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBiYW5kaXRUYXNrLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAiTFJUIiwgY29udHJvbD1nbG1lckNvbnRyb2wob3B0aW1pemVyPSJib2J5cWEiLG9wdEN0cmw9bGlzdChtYXhmdW49MWU2KSksCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA9ICJtZXJNb2QiKSAKCiNnZXQgcmFuZG9tIGVmZmVjdHMKdm9jX1JFcyA8LSByYW5lZihhZ2VuY3lfYnlWT0NUcmlhbEFnZS5taXhlZCkkc3ViSUQgJT4lCiAgICByb3duYW1lc190b19jb2x1bW4odmFyID0gInN1YklEIikKCiNjb21iaW5lIHdpdGggUkwgZXN0aW1hdGVzCnZvY19SRXNfUkwgPC0gZnVsbF9qb2luKHZvY19SRXMsIG1vZGVsX3BhcmFtcywgYnkgPSAnc3ViSUQnKQoKYGBgCgpgYGB7ciBydW4gcmVncmVzc2lvbnMgUkVzIGFuZCBtb2RlbCBwYXJhbWV0ZXJzfQojcnVuIHJlZ3Jlc3Npb25zCgojYWdlbmN5IGJvbnVzCnZvY19pbnRlcmNlcHRfYWdlbmN5Qm9udXMubG0gPC0gbG0oYChJbnRlcmNlcHQpYCB+IGFnZW5jeUJvbnVzLCBkYXRhID0gdm9jX1JFc19STCkKc3VtbWFyeSh2b2NfaW50ZXJjZXB0X2FnZW5jeUJvbnVzLmxtKQoKI2JldGEgYWdlbmN5CnZvY19zbG9wZV9iZXRhQWdlbmN5LmxtIDwtIGxtKHpWb0MgfiBiZXRhQWdlbmN5LCBkYXRhID0gdm9jX1JFc19STCkKc3VtbWFyeSh2b2Nfc2xvcGVfYmV0YUFnZW5jeS5sbSkKCiNiZXRhIGFnZW5jeSBjb250cm9sbGluZyBmb3IgYWdlCnZvY19zbG9wZV9iZXRhQWdlbmN5QWdlLmxtIDwtIGxtKHpWb0MgfiBiZXRhQWdlbmN5ICsgYWdlLCBkYXRhID0gdm9jX1JFc19STCkKc3VtbWFyeSh2b2Nfc2xvcGVfYmV0YUFnZW5jeUFnZS5sbSkKCiNiZXRhIGFnZW5jeSBjb250cm9sbGluZyBmb3IgYmV0YSBtYWNoaW5lCnZvY19zbG9wZV9iZXRhTWFjaGluZS5sbSA8LSBsbSh6Vm9DIH4gYmV0YUFnZW5jeSArIGJldGFNYWNoaW5lLCBkYXRhID0gdm9jX1JFc19STCkKc3VtbWFyeSh2b2Nfc2xvcGVfYmV0YU1hY2hpbmUubG0pCgpgYGAKCgoKCgoKCiMgUXVlc3Rpb25uYWlyZSByZWxhdGlvbnMKCiMjIERPQwpgYGB7ciBkb2N9CiMgbG9hZCBxdWVzdGlvbm5haXJlIGRhdGEKRE9DIDwtIHJlYWRfY3N2KCJkYXRhL3Njb3JlZF9zdXJ2ZXlzL0RPQ19zY29yZWQuY3N2IiwgY29sX25hbWVzID0gVFJVRSkgCgojIG1lcmdlIHdpdGggbW9kZWwgcGFyYW1zCkRPQyA8LSBsZWZ0X2pvaW4oRE9DLCBtb2RlbF9wYXJhbXMpCgojIHogc2NvcmUgY29udGludW91cyB2YXJpYWJsZXMKRE9DJHpBZ2UgPC0gc2NhbGVfdGhpcyhET0MkYWdlKQpET0MkekJldGFBZ2VuY3kgPC0gc2NhbGVfdGhpcyhET0MkYmV0YUFnZW5jeSkKRE9DJHpBZ2VuY3lCb251cyA8LSBzY2FsZV90aGlzKERPQyRhZ2VuY3lCb251cykKCiMgcmVsYXRpb24gYmV0d2VlbiBET0MgYW5kIGFnZQpsbShET0MgfiB6QWdlLCBET0MpICU+JSBzdW1tYXJ5KCkKI21hcmdpbmFsIHBvc2l0aXZlIGVmZmVjdCAocCA9IC4wNTgpCgojIHJlbGF0aW9uIGJldHdlZW4gRE9DIGFuZCBWb0MKbG0oRE9DIH4gekJldGFBZ2VuY3kgKiB6QWdlbmN5Qm9udXMgKnpBZ2UsIERPQykgJT4lIHN1bW1hcnkoKQojIG5vIGVmZmVjdHMKCmBgYAoKIyMgTE9DCmBgYHtyIGxvY30KIyBsb2FkIHF1ZXN0aW9ubmFpcmUgZGF0YQpMT0MgPC0gcmVhZF9jc3YoImRhdGEvc2NvcmVkX3N1cnZleXMvTE9DX3Njb3JlZC5jc3YiLCBjb2xfbmFtZXMgPSBUUlVFKSAKCiMgbWVyZ2Ugd2l0aCBtb2RlbCBwYXJhbXMKTE9DIDwtIGxlZnRfam9pbihMT0MsIG1vZGVsX3BhcmFtcykKCiN6IHNjb3JlIGNvbnRpbnVvdXMgdmFyaWFibGVzCkxPQyR6QWdlIDwtIHNjYWxlX3RoaXMoRE9DJGFnZSkKTE9DJHpCZXRhQWdlbmN5IDwtIHNjYWxlX3RoaXMoTE9DJGJldGFBZ2VuY3kpCkxPQyR6QWdlbmN5Qm9udXMgPC0gc2NhbGVfdGhpcyhMT0MkYWdlbmN5Qm9udXMpCgojIHJlbGF0aW9uIGJldHdlZW4gTE9DIGFuZCBhZ2UKbG0oTE9DIH4gekFnZSwgTE9DKSAlPiUgc3VtbWFyeSgpCiMgbm8gZWZmZWN0CgojIHJlbGF0aW9uIGJldHdlZW4gTE9DIGFuZCBWb0MKbG0oTE9DIH4gekJldGFBZ2VuY3kgKiB6QWdlbmN5Qm9udXMgKiB6QWdlLCBMT0MpICU+JSBzdW1tYXJ5KCkKIyBubyBlZmZlY3RzCmBgYAoKCiMjIEJESQpgYGB7ciBiZGl9CiMgbG9hZCBxdWVzdGlvbm5haXJlIGRhdGEKQkRJIDwtIHJlYWRfY3N2KCJkYXRhL3Njb3JlZF9zdXJ2ZXlzL0JESV9zY29yZWQuY3N2IiwgY29sX25hbWVzID0gVFJVRSkgCgojIG1lcmdlIHdpdGggbW9kZWwgcGFyYW1zCkJESSA8LSBsZWZ0X2pvaW4oQkRJLCBtb2RlbF9wYXJhbXMpCgojeiBzY29yZSBjb250aW51b3VzIHZhcmlhYmxlcwpCREkkekFnZSA8LSBzY2FsZV90aGlzKEJESSRhZ2UpCkJESSR6QmV0YUFnZW5jeSA8LSBzY2FsZV90aGlzKEJESSRiZXRhQWdlbmN5KQpCREkkekFnZW5jeUJvbnVzIDwtIHNjYWxlX3RoaXMoQkRJJGFnZW5jeUJvbnVzKQoKIyByZWxhdGlvbiBiZXR3ZWVuIEJESSBhbmQgYWdlCmxtKHpCREkgfiB6QWdlLCBCREkpICU+JSBzdW1tYXJ5KCkKIyBubyBlZmZlY3QKCiMgcmVsYXRpb24gYmV0d2VlbiBCREkgYW5kIFZvQyAKbG0oekJESSB+IHpCZXRhQWdlbmN5ICogekFnZW5jeUJvbnVzICp6QWdlLCBCREkpICU+JSBzdW1tYXJ5KCkKIyBubyBlZmZlY3RzCgpgYGAKCgojIyBTVEFJCmBgYHtyIHN0YWl9CiMgbG9hZCBxdWVzdGlvbm5haXJlIGRhdGEKU1RBSSA8LSByZWFkX2NzdigiZGF0YS9zY29yZWRfc3VydmV5cy9TVEFJX3Njb3JlZC5jc3YiLCBjb2xfbmFtZXMgPSBUUlVFKSAKCiMgbWVyZ2Ugd2l0aCBtb2RlbCBwYXJhbXMKU1RBSSA8LSBsZWZ0X2pvaW4oU1RBSSwgbW9kZWxfcGFyYW1zKQoKI3ogc2NvcmUgY29udGludW91cyB2YXJpYWJsZXMKU1RBSSR6QWdlIDwtIHNjYWxlX3RoaXMoU1RBSSRhZ2UpClNUQUkkekJldGFBZ2VuY3kgPC0gc2NhbGVfdGhpcyhTVEFJJGJldGFBZ2VuY3kpClNUQUkkekFnZW5jeUJvbnVzIDwtIHNjYWxlX3RoaXMoU1RBSSRhZ2VuY3lCb251cykKCiMgcmVsYXRpb24gYmV0d2VlbiBTVEFJX3QgYW5kIGFnZQpsbSh6U1RBSV90IH4gekFnZSwgU1RBSSkgJT4lIHN1bW1hcnkoKQojIG5vIGVmZmVjdAoKIyByZWxhdGlvbiBiZXR3ZWVuIFNUQUlfdCBhbmQgVm9DCmxtKHpTVEFJX3QgIH4gekJldGFBZ2VuY3kgKiB6QWdlbmN5Qm9udXMgKnpBZ2UsIFNUQUkpICU+JSBzdW1tYXJ5KCkKIyBubyBlZmZlY3QKCiMgcmVsYXRpb24gYmV0d2VlbiBTVEFJX3MgYW5kIGFnZQpsbSh6U1RBSV9zIH4gekFnZSwgU1RBSSkgJT4lIHN1bW1hcnkoKQojIG5vIGVmZmVjdHMKCiMgcmVsYXRpb24gYmV0d2VlbiBTVEFJX3MgYW5kIFZvQwpsbSh6U1RBSV9zICB+IHpCZXRhQWdlbmN5ICogekFnZW5jeUJvbnVzICp6QWdlLCBTVEFJKSAlPiUgc3VtbWFyeSgpCiMgbm8gZWZmZWN0cwpgYGA=